package com.tedu.day02.oop;

/**
 * this关键字---super关键字---使用完全一致
 * 不需要继承---当前类，指代当前
 * 使用方式：调用当前类的属性、方法、构造器
 *       this，属性                【当前类的属性赋值】
 *                                     出现构造器、方法中
 *                                     区别当前类的属性与参数“名称”一致
 * this.方法
 * this（）            多个有参构造器
 *
 *鄙视题:this与super有什么区别?
 * this：调用本类的属性或者方法以及构造器
 * super：调用父类的属性或者方法以及构造器
 * this()与super（）---传递参数：赋值
 * this(参数)：可调用本类其他构造器(构造器首行)
 * super(参数)：调用父类的其他构造器(子类构造器首行)
 *         有继承关系，在于类构造器中默认存在super()
 *      请问this（）与super（）可以同时出现在同一构造器中？
 *      不可以
 *
 *
 */


public class This关键字 {
    int i;     //属性---很少赋值【声明未赋值】----构造器或者方法中赋值
    int j;     //属性---很少赋值【声明未赋值】 ----构造器或者方法中赋值

    public This关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }

    //有参构造器       需求：创建1个参数对象，给i跟j赋值【跟一样super】
    public This关键字(int i) {
        this(3,4);  //调用本类其他有参构造器===传参
        this.i = i;   //常见：    this.属性【当前类下属性】=参数  i=1
                      //赋值   this.i=1;
    }
    //方法---this.方法
    public void testI(){
        System.out.println("我是I");

    }
    public void testJ(){   //调取---输出：我是J    我是I
        System.out.println("我是J");
    }



        public static void main(String[] args) {
        System.out.println(new This关键字(1).i);  //属性没有输出语句
       // new   This关键字(1).testJ();   //方法有输出语句
    }
}

